1. Field of the Invention
The present invention relates to communications network apparatus such as is used to link together information handling apparatus or computers of various types. More particularly, the present invention relates to an improved system and method for managing data flow in a processing device coupled to a data transmission network, including a method and system for handling a plurality of input information units (or frames) which may be simultaneously processed by a plurality of independent processors, creating a plurality of processed or output information units.
2. Background Art
A certain amount of background information on the subject of data transmission networks (also sometimes referred to as communication networks)xe2x80x94and the systems which allow such networks to efficiently interchange dataxe2x80x94is presupposed at the outset. Such communications networks typically employ devices which are referred to as switches and routers in moving packets of information (sometimes referred to as frames) between information handling devices.
The International Standards Organization (sometimes referred to as ISO) has proposed an architectural model to describe the framework of the network, which model is divided into layers. A typical architecture based upon the ISO model extends from layer 1 (which is sometimes referred to as xe2x80x9cL1xe2x80x9d) being the physical pathway or media through which signals are passed upward through layers 2, 3, 4 and so forth up to Layer 7, with Layer 7 being the layer of application programming on a computer system linked to the network. Throughout this document, mention of the terms L1, L3, etc., are intended to refer to the layers of a network architecture.
In the present day use of a network, bandwidth of the network is a crucial measurement. The xe2x80x9ctrafficxe2x80x9d on a network continues to increase at a rapid pace, requiring more and more of the network and the components which regulate the flow of information over the network and direct the information to the appropriate location.
The increase in network traffic has been dramatic in recent years, driven, at least in part, by the explosive growth of the Internet, and, to a lesser extent, the growth of private data networks or intranets. In either case, a person at one location can access a potentially large amount of information and data processing resources which are physically located at a remote location by sending messages back and forth across a network, often requiring many interconnections between data processing systems and networks along the way.
The Internet has traditionally been a network in which data packets are carried without incremental charge. As the Internet continues to expand and the technology improve in areas like reliability and security, it has presented an opportunity to transmit many different kinds of information, including mixtures of different types of information relatively simultaneously. So, it has been proposed to send voice and data concurrently in hardware and software systems arrangements which have come to be called xe2x80x9cvoice over asynchronous transmission modexe2x80x9d (or xe2x80x9cVoATMxe2x80x9d) or xe2x80x9cvoice over frame relay (xe2x80x9cor VOFRxe2x80x9d)xe2x80x94examples of xe2x80x9cvoice over dataxe2x80x9d systems of network transmissions. These allows the voice transmissions (typically telephone-like communications services) to use cost effective transmission medium (the Internet) using communication technique of choice (such as ATM). Of course, there are always considerations beyond the cost of service, like quality of service to consider (reliability, response time, security of data from alteration and eavesdropping) in choosing a service and a transmission, but the amount of data flowing through the networks like the Internet and the analogous private data networks continues to expand at a very rapid rate.
The expanding amount of data flowing over the network requires that new and more efficient hardware and software be used with the data transmission networks to handle the increased amount of data and handle it faster and with greater accuracy and reliability. Data transmission networks handle a large and increasing amount of data, particularly since the Internet has come into existence. In addition, the number of private data networks has been steadily increasing as the desire for access to more remote data and data processing capabilities has become apparent.
System for handling data are known in the prior art which include rigid first-in-first out processing of data. While this works fine when the processing occurs in a routine fashion, such a system is bound up and stops functioning when the processing of one input is delayed. The delay of the processing of one input unit has the effect of stopping the processing of others.
Other systems are known which keep track of input message units during processing. These systems have the limitation and disadvantage that a significant amount of processing power must be devoted to keeping track of what information unit is where in the system, and some do not accommodate additional input information units, e.g., from new data flows or from internally generated messages.
Other disadvantages and limitations of the prior art systems will be apparent to those skilled in the art in view of the following description of the present invention.
The present invention overcomes the disadvantages and limitations of the prior art system by providing a system for managing the data flow over a network which is simple, yet efficient, in handling the data.
The present invention has the advantage that it allows input information units (or input frames) from a single data flow to be assigned to one of a plurality of independent processors for processing, then allow the output information units (or completed frames) processed reassembled into the same order in which the input frames were received.
The present invention also has the advantage that multiple data flows can be processed without influencing each other, and one data flow will not block the other data flows. That is, when the processing of one data flow is halted awaiting completion of the processing of one portion thereof, the other data flows can continue.
The present invention also allows a flushing of the system or immediate dispatching of completed frames without regard to order, if desired, overriding the normal operation of handling each data flow in the order in which it was received.
The present invention also has the advantage that it is efficient in its use of buffers and storage devices. The present invention also has the advantage that it operates quickly, so that the speed of the processing is not reduced by the overhead of managing the data flows.
The present invention has the advantage that it is simple and easy to implement, with a minimum of additional hardware and/or software elements. By having a relatively simple design, the cost to design and implement the completion unit of the present invention is not great. Further, by implementing the design in hardware which is processing concurrently with the frame processing, the impact on the speed of processing is negligible.
Through the use of the present invention, multiple processing units may be independent one of the other, yet process the same data flow without allowing portions to get into a different and undesirable order. The output of processed information units for a given data flow will be in the same order as the system received input frames from that data flow, unless overridden by a flush command.
The present invention allows for the insertion of new data flows and the creation of information units by the system without affecting the processing which maintains the order of the data flows received from the network.
Other objects and advantages of the present invention will be apparent to those skilled in the relevant art in view of the following description of the preferred embodiment, taken together with the accompanying drawings and the appended claims.